package dryven.util;

public class TypeUtil {
	public static boolean typesAreAssignable(Class<?> dst, Class<?> src) {
		if(dst.isAssignableFrom(src)) {
			return true;
		}
		if(dst.isPrimitive()) {
			if(dst.equals(Integer.TYPE) && src.equals(Integer.class)) {
				return true;
			}
			if(dst.equals(Boolean.TYPE) && src.equals(Boolean.class)) {
				return true;
			}
			if(dst.equals(Float.TYPE) && src.equals(Float.class)) {
				return true;
			}
			if(dst.equals(Double.TYPE) && src.equals(Double.class)) {
				return true;
			}
			if(dst.equals(Short.TYPE) && src.equals(Short.class)) {
				return true;
			}
			if(dst.equals(Byte.TYPE) && src.equals(Byte.class)) {
				return true;
			}
			if(dst.equals(Long.TYPE) && src.equals(Long.class)) {
				return true;
			}	
		}
		return false;
	}
}
